﻿@*
//------------------------------------------------------------------------------
//  此代码版权声明为全文件覆盖，如有原作者特别声明，会在下方手动补充
//  此代码版权（除特别声明外的代码）归作者本人Diego所有
//  源代码使用协议遵循本仓库的开源协议及附加协议
//  Gitee源代码仓库：https://gitee.com/diego2098/ThingsGateway
//  Github源代码仓库：https://github.com/kimdiego2098/ThingsGateway
//  使用文档：https://diego2098.gitee.io/thingsgateway-docs/
//  QQ群：605534569
//------------------------------------------------------------------------------
*@

@namespace ThingsGateway.Admin.Blazor
@using Masa.Blazor.Presets
@using ThingsGateway.Admin.Application;
@inherits LayoutComponentBase
@layout BaseLayout
@if (UserManager.UserId > 0)
{
    <SysSignalR></SysSignalR>
}
<PPageTabsProvider>

    <CascadingValue Value="@this" IsFixed>
        <CascadingValue Value="@_changed" Name="Changed">

            <MNavigationDrawer Color="barcolor" @bind-Value="_drawerOpen" App Width="200">
                 @if (_isMobile)
                {
                    <MSystemBar Color="barcolor" Height="@(BlazorResourceConst.PageTabsHeight)">
                        <MButton Icon OnClick=@(()=> _drawerOpen = !_drawerOpen)>
                             <MIcon>
                                 mdi-close-thick
                             </MIcon>
                         </MButton>
                         <MSpacer />
                         <AppbarButtons />
                     </MSystemBar>
                }
                <Logo CONFIG_COPYRIGHT=@_configCopyRight CONFIG_TITLE=@_configTitle HeightInt=@(_isMobile?BlazorResourceConst.AppBarHeight:BlazorResourceConst.AppBarHeight+BlazorResourceConst.PageTabsHeight) />
                <AppList ClassString="overflow-y-auto" Routable
                          StyleString=@($"height: calc(100vh - {BlazorResourceConst.AppBarHeight+BlazorResourceConst.PageTabsHeight}px);")
                          Items="_navItems" />
             </MNavigationDrawer>

             <MAppBar Color="barcolor" Style=@($"{(!(_isMobile||_drawerOpen!=true)? "left:200px;":"")}") Elevation="1" App Flat ClippedRight Dense ElevateOnScroll
                      MaxHeight="@(BlazorResourceConst.AppBarHeight)" Height="@(BlazorResourceConst.AppBarHeight)">
                 <MButton Class="mr-0" Icon Small=_isMobile OnClick=@(() => _drawerOpen = !_drawerOpen)>
                     <MIcon>mdi-menu</MIcon>
                 </MButton>
                 <AppBarItems BreadcrumbSysResources="_breadcrumbSysResources" SearchSysResources="_searchSysResources" CONFIG_COPYRIGHT=@_configCopyRight CONFIG_COPYRIGHT_URL=@_configCopyRightUrl CONFIG_TITLE=@_configTitle>
                 </AppBarItems>

             </MAppBar>

             <MMain Style=@($"{(!(_isMobile||_drawerOpen!=true)? "padding-left:200px;":"")}")>
                 @if (_configPageTab)
                {
                    <div class="full-width">
                        <PageTabs @ref="_pageTabs" PageTabItems="_pageTabItems" />
                    </div>
                    <MDivider Center></MDivider>
                }

                <MCard Flat Class="overflow-y-auto overflow-x-hidden ma-auto pa-0 rounded-0" Style=@($"height: calc(100vh - {BlazorResourceConst.AppBarHeight+BlazorResourceConst.PageTabsHeight+BlazorResourceConst.FooterHeight}px);")>
                     @if (_configPageTab)
                    {
                        <PPageContainer PageTabs="@_pageTabs?.PPageTabs">
                            @Body
                        </PPageContainer>
                    }
                    else
                    {
                        @Body
                    }

                </MCard>
                <MSheet Class="d-flex justify-center align-center rounded-0" Style=@($"height: {BlazorResourceConst.FooterHeight}px; ")>
                    <Foter CONFIG_COPYRIGHT=@_configCopyRight CONFIG_COPYRIGHT_URL=@_configCopyRightUrl CONFIG_TITLE=@_configTitle></Foter>
                </MSheet>
            </MMain>
        </CascadingValue>
    </CascadingValue>

</PPageTabsProvider>


